<?php
namespace box\process;
use houze\Process;

/**
 * 自定义进程示例
 */ 
class Demo extends Process{
    
    /**
     * 进程名称
     */
    public $name = 'diy-process';
    
    /**
     * 是否需要while(true) 永久堵塞
    */
    public $onWhile = false;

    /**
     * 等待间隔时间(毫秒)  0不堵塞
    */
    public $sleepS = 0;

    // 进程逻辑接口方法
    public function run() {
        // 该方法必须创建，但可留空
        
        // 返回结果 可不返回 不建议使用需要等主进程完成后才能返回 返回的结果是字符串或者对象
        return true;
    }

    // 业务入口执行前的前置方法
    public function front() {
        // 如果返回false，run()则不会执行，while(true)也会终止
        return true;
    }

    // 业务进程发生异常时回调
    public function onException(\Throwable $throwable) 
    {
        // $throwable->getMessage(); 错误内容
        // $throwable->getFile(); 错误文件
        // $throwable->getLine(); 错误行数
    }
}